package spring.framework.beans.factory;

import spring.framework.beans.BeansException;
import spring.framework.beans.factory.config.AutowireCapableBeanFactory;
import spring.framework.beans.factory.config.BeanDefinition;
import spring.framework.beans.factory.config.BeanPostProcessor;
import spring.framework.beans.factory.config.ConfigurableBeanFactory;

/**
 * @author fun.pengzh
 * @class spring.framework.beans.factory.ConfigurableListableBeanFactory
 * @desc
 * @since 2021-10-17
 */
public interface ConfigurableListableBeanFactory extends ConfigurableBeanFactory, ListableBeanFactory, AutowireCapableBeanFactory {

    BeanDefinition getBeanDefinition(String beanName) throws BeansException;

    void preInstantiateSingletons();

    void addBeanPostProcessor(BeanPostProcessor beanPostProcessor);

}
